package com.gkzf.ai.module.crm.service.creditreportsimple.app;

import com.gkzf.ai.module.crm.controller.app.simpleCredit.vo.condition.UserAdmittanceConditionRespVO;
import com.gkzf.ai.module.crm.controller.app.simpleCredit.vo.condition.UserAdmittanceConditionSaveReqVO;
import com.gkzf.ai.module.crm.dal.dataobject.creditreportsimple.UserAdmittanceConditionDO;
import jakarta.validation.Valid;

import java.math.BigDecimal;

/**
 * CRM 小程序用户补充信息准入条件 Service 接口
 *
 * @author 国科智飞
 */
public interface AppUserAdmittanceConditionService {

    /**
     * 更新CRM 小程序用户补充信息准入条件
     *
     * @param updateReqVO 更新信息
     */
    void updateUserAdmittanceCondition(@Valid UserAdmittanceConditionSaveReqVO updateReqVO);

    /**
     * 更新CRM 小程序用户补充信息可贷点准入条件
     *
     * @param updateReqVO 创建信息
     */
    void updateLoanUses(UserAdmittanceConditionDO updateReqVO);

    /**
     * 编辑计算的信息
     * @param updateReqVO 更新信息
     */
    void updateUserAdmittanceConditionXml(UserAdmittanceConditionSaveReqVO updateReqVO);

    /**
     *  获取CRM 小程序用户补充信息准入条件
     * @param userOpenId 用户openId
     * @return 对象
     */
    UserAdmittanceConditionRespVO getUserAllAdmittanceCondition(String userOpenId);

    /**
     *  获取CRM 小程序用户补充信息准入条件
     * @param userOpenId 用户openId
     * @return 对象
     */
    UserAdmittanceConditionDO getUserAdmittanceCondition(String userOpenId);

    /**
     * 年收入
     *
     * @param conditionDO 小程序用户补充信息
     */
    BigDecimal getAnnualIncome(UserAdmittanceConditionDO conditionDO);

    /**
     * 月收入
     *
     * @param conditionDO 小程序用户补充信息
     */
    BigDecimal getMonthlyIncome(UserAdmittanceConditionDO conditionDO);

    /**
     * 认定月收入
     *
     * @param conditionDO 小程序用户补充信息
     */
    BigDecimal getConcludeMonthlyIncome(UserAdmittanceConditionDO conditionDO,String trimmedType);

}